Publish Windows PDBs for Roslyn SDK - #85133
Conversation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 89059e67-5d84-463f-a6e1-b4d8d1181054
|
Azure Pipelines: Successfully started running 2 pipeline(s). There may be pipelines that require an authorized user to comment /azp run to run. |
There was a problem hiding this comment.
Copilot review overview
🟢 Approval recommended
The change is a minimal, low-risk per-project override of an existing repo-wide default property and is consistent across all five intended projects.
Review tier: Lite
Findings: None
What changed in this PR
This PR enables Arcade’s Windows PDB publishing for five Roslyn SDK VSIX projects by setting PublishWindowsPdb=true in each project file, so symbol publishing can include Windows-format PDBs for legacy VS insertion symbol store compatibility.
Changes:
- Set
<PublishWindowsPdb>true</PublishWindowsPdb>in 5 Roslyn SDK projects that ship in the VSIX. - Ensure these projects override the repo default (
PublishWindowsPdb=falsefromeng/targets/Settings.props) only where needed.
| File | Description |
|---|---|
| src/RoslynSdk/VisualStudio.Roslyn.SDK/SyntaxVisualizer/Roslyn.SyntaxVisualizer.Extension/Roslyn.SyntaxVisualizer.Extension.csproj | Enables Windows PDB publishing for the Syntax Visualizer extension assembly. |
| src/RoslynSdk/VisualStudio.Roslyn.SDK/SyntaxVisualizer/Roslyn.SyntaxVisualizer.DgmlHelper/Roslyn.SyntaxVisualizer.DgmlHelper.vbproj | Enables Windows PDB publishing for the DGML helper assembly. |
| src/RoslynSdk/VisualStudio.Roslyn.SDK/SyntaxVisualizer/Roslyn.SyntaxVisualizer.Control/Roslyn.SyntaxVisualizer.Control.csproj | Enables Windows PDB publishing for the Syntax Visualizer control assembly. |
| src/RoslynSdk/VisualStudio.Roslyn.SDK/Roslyn.SDK.Template.Wizard/Roslyn.SDK.Template.Wizard.csproj | Enables Windows PDB publishing for the template wizard assembly. |
| src/RoslynSdk/VisualStudio.Roslyn.SDK/ComponentDebugger/Roslyn.ComponentDebugger.csproj | Enables Windows PDB publishing for the component debugger assembly. |
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 89059e67-5d84-463f-a6e1-b4d8d1181054
|
/pr-val |
|
View PR Validation Run triggered by @JoeRobich Parameters
|
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
UsingToolPdbConverter is enabled unconditionally, which conflicts with the PR’s “CI-only” framing and may unnecessarily impact local/non-Windows builds unless intentionally desired.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Review tier: Lite
Findings: 1
New issues introduced by this change (1)
| Severity | Finding |
|---|---|
eng/Versions.props — UsingToolPdbConverter is now enabled unconditionally for all builds/OSes. The PR description says… |
| <PropertyGroup> | ||
| <UsingToolVSSDK Condition="$([MSBuild]::IsOSPlatform('Windows'))">true</UsingToolVSSDK> | ||
| <UsingToolPdbConverter>false</UsingToolPdbConverter> | ||
| <UsingToolPdbConverter>true</UsingToolPdbConverter> | ||
| <UsingToolSymbolUploader>true</UsingToolSymbolUploader> | ||
| <UsingToolNuGetRepack>true</UsingToolNuGetRepack> |
Fixes the unrelated `TestMultiFile_EditTransitiveDirective` failure observed while validating #85133 in Azure DevOps build 1579046. The test wrote the entry-point file and immediately waited for workspace operations. On slower CI machines, that waiter could complete before the file watcher delivered the change and enqueued the project reload, leaving the expected `Util2` diagnostic in the workspace. Subscribe before writing the file and wait for the matching file-change notification before waiting for project load. The intermediate assertion continues to reproduce #85112; this only stabilizes the final reload assertion. Validation: - Reproduced the failure locally before the change. - Focused test passes both `mutatingLspWorkspace` variants. - Repeated the focused test five times (10 total test cases), all passing. ###### Microsoft Reviewers: [Open in CodeFlow](https://microsoft.github.io/open-pr/?codeflow=https://github.com/dotnet/roslyn/pull/85138) --------- Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Copilot-Session: bc8789c2-ae66-4934-836a-c1b0bc53f224

Fixes the missing symbols reported by DevDiv work item 3058528: https://dev.azure.com/devdiv/DevDiv/_workitems/edit/3058528/
The Roslyn SDK VSIX ships five assemblies whose embedded or portable PDBs were not compatible with the legacy VS insertion symbol store. Enable Windows PDB publishing for those projects and re-enable Arcade's CI-only PDB converter so SymStore.targets converts the PDBs and Publish.proj includes them in the symbol-server payload.
Validation: